package com.cci.kangdao.service;

import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;

public interface LoginService {
	
	/**
	 * App注册用户
	 * @param map
	 * @return
	 */
	@Deprecated
	public ModelAndView userRegister(Map map); 
	
	/**
	 * App用户登录
	 * @param map
	 * @return
	 */
	@Deprecated
	public ModelAndView login(Map map);
	/**
	 * App用户验证token接口
	 * @param map
	 * @return
	 */
	public ModelAndView verifyToken(Map map);
	
	/**
	 * App用户修改密码接口
	 * @param map
	 * @return
	 */
	public ModelAndView updateUserpwd(Map map);

	/**
	 * App用户找回密码接口
	 * @param map
	 * @return
	 */
	public ModelAndView findPassword(Map map);
	
	/**
	 * App用户获取首页功能
	 * @param map
	 * @return
	 */
	public ModelAndView index(Map map);

	/**
	 * npbu项目接口     npbu根据角色获取e路康明斯app上npbu首页菜单（轮播图，功能项，文章分类）
	 * @param map
	 * @return
	 */
	public ModelAndView npbuIndexMenu(Map map);

	/**
	 * npbu获取用户的所有动作     npbu根据角色获取e路康明斯app上npbu首页菜单（轮播图，功能项，文章分类）
	 * @param map
	 * @return
	 */
	public ModelAndView getNpbuActionByUserid(Map map);

	/**
	 * web请求删除redis中的key
	 * @param map
	 * @return
	 */
	public ModelAndView delRedisKey(Map map);
	
	/**
	 * 获取API地址
	 * @return
	 */
	public String getApiDomain(Map<String,Object> map);

	/**
	 * 获取AD密码验证页面url
	 * @param map 包括type和account
	 * @return url
	 */
	ModelAndView getLoginUrl(Map map);

	/**
	 * 内部用户初始化用户信息
	 * @param map 用户初始化信息
	 * @return
	 */
	void initInfo(Map<String, Object> map);

	/**
	 * 用户注册
	 * @param map 用户注册信息
	 */
	void register(Map map);

	/**
	 * 静默登录
	 * @param map
	 */
	void silentLogin(Map map);

	void bindWWID(Map map);

	void bindPromotionId(Map map);
	
	void mpUpdateUserPassword(Map<String, Object> map);

	/**
	 * 删除账号
	 * @param map
	 * @return
	 */
	public boolean delete(Map<String, Object> map);

	/**
	 * app用户退出登录接口
	 * @param map
	 * @return
	 */
	public boolean appLoginOut(HttpServletRequest request, HttpServletResponse response);


}